# -*- coding: utf-8 -*-
# autor: Rui-6047, Pedro-11240
# data: 25 de Outubro de 2013
# obs: 1º Parte do Trabalho de LP

import sqlite3
import xlrd

class database():
        '''class that will create and fill the database
        with the information of the file .xls'''
       
        def createDatabase(self):
                '''Method that creates and fills the database'''

                connection = sqlite3.connect("database.db")
                cursor = connection.cursor()

                cursor.execute('''drop table if exists Data''')
                connection.commit()

                cursor.execute('''create table if not exists Data (id INTEGER,
                        Codigo_instituicao INTEGER,
                        Codigo_curso INTEGER,
                        Nome_instituicao TEXT,
                        Nome_curso TEXT,
                        Grau TEXT,
                        Vagas_iniciais INTEGER,
                        Colocados INTEGER,
                        nota_ultimo_colocado INTEGER,
                        Vagas_sobrantes INTEGER)''')


                wb = xlrd.open_workbook('cna131fresultados.xls')

                Codigo_instituicao = []
                Codigo_curso = []
                Nome_instituicao = []
                Nome_curso = []
                Grau = []
                Vagas_iniciais = []
                Colocados = []
                nota_ultimo_colocado = []
                Vagas_sobrantes = []

                i = 0
                sh = wb.sheet_by_index(0)
               
                for row in range(4, sh.nrows - 2):
                       
                        Codigo_instituicao = (sh.cell_value(row, 0))
                        Codigo_curso = (sh.cell_value(row, 1))
                        Nome_instituicao = (sh.cell_value(row, 2))
                        Nome_curso = (sh.cell_value(row, 3))
                        Grau = (sh.cell_value(row, 4))
                        Vagas_iniciais = (sh.cell_value(row, 5))
                        Colocados = (sh.cell_value(row, 6))
                        nota_ultimo_colocado = (sh.cell_value(row, 7))
                        Vagas_sobrantes = (sh.cell_value(row, 8))

                        cmd = '''insert into Data (id,
                                Codigo_instituicao,
                                Codigo_curso,
                                Nome_instituicao,
                                Nome_curso,
                                Grau,
                                Vagas_iniciais,
                                Colocados,
                                nota_ultimo_colocado,
                                Vagas_sobrantes)
                                values ("{0}", "{1}", "{2}", "{3}", "{4}",
                                "{5}", "{6}", "{7}", "{8}", "{9}")'''.\
                                format(i,
                                Codigo_instituicao,
                                Codigo_curso,
                                str(Nome_instituicao.encode('utf-8').replace( '"', '♦' )),
                                str(Nome_curso.encode('utf-8').replace( '"', '♦' )),
                                Grau,
                                Vagas_iniciais,
                                Colocados,
                                nota_ultimo_colocado,
                                Vagas_sobrantes
                                )
                        cursor.execute(cmd)
                        i = i + 1
                        pass
               
                connection.commit()
                connection.close()

                pass


db = database()
db.createDatabase()

